package com.learning.datastruct.collection;

/**
 * @author ZLH
 */
public interface MyCollection<E> {
    /**
     * 获取元素数量
     *
     * @return 元素数量
     */
    int size();

    /**
     * 集合是否为空
     *
     * @return 是否为空
     */
    boolean isEmpty();

    /**
     * 集合是否包含指定元素
     *
     * @param o 要查询的元素
     * @return 是否包含
     */
    boolean contains(Object o);

    /**
     * 添加元素
     *
     * @param e 要添加的元素
     * @return 集合是否有变化
     */
    boolean add(E e);

    /**
     * 移除元素
     *
     * @param o 要移除的元素
     * @return 集合是否有变化
     */
    boolean remove(Object o);

    /**
     * 清空
     */
    void clear();
}
